Career 2025 2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010
All Rounds Final 1/2 1/4 First Second Third Fourth Pre-q Rubber 1 Rubber 2 Rubber 3 Rubber 4 Rubber 5 Robin Bronze Q3 N/A Q2 Q1 ER Q4 CR QF Q5 N/A
All Courts Acrylic N/A Clay Grass Carpet Hard I.hard
All Tour Wimbledon - London Verona Challenger Grodzisk Mazowiecki Challenger Augsburg Challenger Mallorca Challenger U.S. Open - New York Lisbon Challenger Braga Challenger Hamburg Challenger Brest Challenger Matsuyama Challenger Australian Open - Melbourne Nonthaburi 3 Challenger Ottignies-Louvain-la-Neuve Challenger Lille Challenger M25 Vale do Lobo Oeiras 3 Challenger Girona Challenger French Open - Paris Madrid Challenger Oeiras 4 Challenger Mauthausen Challenger M25 Setubal Olympics - Paris Wimbledon - London Karlsruhe Challenger M25 Vila Real de Santo Antonio M25 Faro Yokohama Challenger M25 Vale do Lobo M25 Vale do Lobo Australian Open - Melbourne M25 Vila Real de Santo Antonio French Open - Paris Portugal F1 Portugal F2 Portugal F5 Spain F25 Portugal F4 Brazil F31 Brazil F32 Portugal F3 Portugal F4 Egypt F2 Egypt F4 Germany F10 Spain F26 Spain F27 Spain F30 Spain F33 Portugal F9 Portugal F10 Egypt F32 Egypt F33 Spain F41 Spain F42 Turkey F49 Turkey F50 Portugal F1 Portugal F3 Turkey F7 Turkey F8 Turkey F9 Portugal F4 Portugal F5 Portugal F6 Belgium F2 Belgium F3 Belgium F4 Belgium F5 Germany F6 Germany F8 Germany F9 Germany F10 Spain F21 Romania F2 Romania F13 Portugal F8 Portugal F9 Portugal F10 Portugal F11 Turkey F42 Turkey F43 Tunisia F3 Tunisia F4 Portugal F3 Morocco F2 Morocco F3 Portugal F4 Portugal F7 Mozambique F1 Mozambique F2 Spain F18 Germany F5 Germany F6 Germany F8 Germany F10 Belgium F13 Spain F28 Germany F15 Germany F16 Egypt F36 Egypt F37 Egypt F38 Egypt F39 Turkey F5 Turkey F6 Turkey F7 Portugal F3 Egypt F9 Egypt F10 Czech Republic F4 Germany F6 Germany F7 Germany F9 Germany F10 Germany F11 Romania F15 Germany F17 Turkey F47 Turkey F48 Wimbledon - London Milan Challenger U.S. Open - New York Shenzhen Challenger Germany F3 (Nussloch) Egypt F4 (Sharm El Sheikh) Egypt F5 (Sharm El Sheikh) Portugal F7 (Carcavelos) Ukraine F1 (Cherkassy) Ukraine F2 (Cherkassy) Romania F2 (Bacau) Tunisia F22 (Hammamet) Portugal F10 (Torres Vedras) Germany F7 (Trier) Portugal F11 (Povoa de Varzim) Germany F8 (Kassel) Portugal F12 (Idanha-A-Nova) Portugal F13 (Idanha-A-Nova) Germany F9 (Essen) Germany F10 (Wetzlar) Germany F11 (Karlsruhe) Belgium F12 (Middelkerke) France F19 (Mulhouse) France F20 (Plaisir) Tunisia F27 (Hammamet) France F21 (Forbach) Tunisia F28 (Hammamet) Tunisia F29 (Hammamet) Germany F14 (Oberhaching) Tunisia F30 (Hammamet) Germany F16 (Hamburg) Qatar F5 (Doha) Qatar F6 (Doha) Germany F2 (Nussloch) Portugal F1 (Vale Do Lobo) Portugal F3 (Loule) Qatar F2 (Doha) Qatar F3 (Doha) Portugal F5 (Vilamoura) Portugal F6 (Lisbon) Egypt F11 (Sharm El Sheikh) Portugal F7 (Porto) Portugal F8 (Cascais) Spain F9 (Madrid) Spain F10 (Majadahonda) Tunisia F23 (Hammamet) Germany F11 (Trier) Portugal F14 (Sintra) Portugal F15 (Sintra) Germany F13 (Ueberlingen) M25 Hong Kong M25 Nussloch M25 Tavira M15 Alkmaar M15+H Bressuire M15 Antalya M15 Antalya M15 Antalya M15 Antalya M25 Shrewsbury M25 Al Zahra Segovia Challenger Rome Challenger Samarkand Challenger Tampere Challenger Lisbon Challenger Milan Challenger Eckental Challenger Koblenz Challenger Heilbronn Challenger Vicenza Challenger L'Aquila Challenger Marburg Challenger Meerbusch Challenger Zhangjiagang Challenger Kaohsiung Challenger Almaty Challenger Tashkent Challenger Canberra Challenger Bratislava Challenger Bangalore Challenger Pune Challenger Da Nang Challenger Sophia Antipolis Challenger Sarasota Challenger Tallahassee Challenger Aix En Provence Challenger Braga Challenger Lisbon Challenger Vicenza Challenger Prostejov Challenger Bratislava Challenger Milan Challenger Ludwigshafen Challenger Prague Challenger Manerbio Challenger Meerbusch Challenger Baotou Challenger Jinan Challenger Kaohsiung Challenger Ningboo Challenger Ismaning Challenger Liuzhou Challenger Shenzhen Challenger Portugal F5 Portugal F3 Portugal F5 Portugal F2 Bengalaru Challenger Nur-Sultan Challenger Split Challenger Nur-Sultan 1 Challenger Nur-Sultan 2 Challenger Oeiras 3 Challenger Almaty 1 Challenger Meerbusch Challenger Mallorca Challenger Braga Challenger Lisbon Challenger Mouilleron-Le-Captif Challenger Barcelona Challenger Eckental Challenger Tenerife Challenger Forli 3 Challenger Mauthausen Challenger Heilbronn Challenger Tunis Challenger Troisdorf Challenger Troyes Challenger Iasi Challenger Banja Luka Challenger Tulln Challenger Alicante Challenger St. Tropez Challenger Hamburg Challenger Ortisei Challenger Yokohama Challenger Kobe Challenger Yokkaichi Challenger Nonthaburi 3 Challenger Ottignies-Louvain-la-Neuve Challenger Pune Challenger Biel Challenger Florianopolis Challenger Braunschweig Challenger Portugal F4 Portugal F5 Portugal F6 Germany F12 Portugal F7 Portugal F11 Portugal F2 Porto Challenger Como Challenger Genova Challenger Italy F6 Portugal F6 (Porto) Dobrich 2 Challenger St. Tropez Challenger Lisbon Challenger M25 Wetzlar Braga Challenger Brest Challenger Bratislava 2 Challenger M25 Wetzlar Helsinki Challenger Kobe Challenger Yokkaichi Challenger Nonthaburi 1 Challenger Oeiras 2 Challenger Oeiras 3 Challenger Tenerife 2 Challenger Thionville Challenger Girona Challenger Menorca Challenger Madrid Challenger Prague Challenger Bordeaux Challenger Brasov Challenger Bunschoten Challenger Egypt F3 Zug Challenger Tampere Challenger Porto Challenger Hagen Challenger Bonn Challenger M25 Barnstaple M25 Glasgow M25 Manacor Todi Challenger Sofia 2 Challenger Manacor Challenger M15 Porec Porto 2 Challenger Seville Challenger M15 Rovinj Lisbon Challenger Las Vegas Challenger Lincoln Challenger Matsuyama Challenger M25 Setubal Lyon Challenger Kobe Challenger M25 Sabadell M25 Loule M25 Alkmaar M25 Valldoreix M25 Sintra M15 Manacor M25 Monastir M15 Frankfurt am Main Perugia Challenger Poznan Challenger Egypt F6 (Sharm El Sheikh) M25 Elvas M25 Mungia-Laukariz M25 Bakio M25 Roda de Bara M25 Castelo Branco M25 Porto M25 Idanha-a-Nova Germany F14 M25 Idanha-a-Nova Estoril Open - Estoril Portugal F5 (Quinta Da Marinha) M25 Satu Mare Grand Prix Hassan II - Casablanca Millennium Estoril Open - Estoril Millennium Estoril Open - Estoril M25 Sintra Tata Open Maharashtra - Pune Sofia Open - Sofia Murray River Open - Melbourne Millennium Estoril Open - Estoril Gonet Geneva Open - Geneva Boss Open - Stuttgart Almaty Open - Almaty Egypt F1 (Sharm El Sheikh) Napoli Challenger Barletta Challenger Turin Challenger Prague Challenger Glasgow Challenger Sao Paulo Challenger Maia Challenger Potchefstroom 1 Challenger St. Petersburg 1 Challenger Lille Challenger Prague Challenger Alicante Challenger Bratislava Challenger Porto Challenger Miami Open - Miami Braunschweig Challenger Sao Leopoldo Challenger Segovia Challenger Barletta Challenger Tulln Challenger Guimaraes Challenger Segovia Challenger Kyiv Challenger BNP Paribas Open - Indian Wells Mutua Madrid Open - Madrid Shanghai Rolex Masters - Shanghai Sao Paulo Challenger Santos Challenger Brest Challenger Bratislava Challenger Ortisei Challenger Helsinki Challenger Casablanca Challenger New Delhi Challenger Kolkata Challenger Mersin Challenger Todi Challenger Segovia Challenger Manerbio Challenger Matsuyama Challenger Eskisehir Challenger Porto Alegre Challenger Sao Paulo Challenger Traralgon Challenger Bangkok Challenger Manila Challenger Bengalaru 1 Challenger Forli 4 Challenger Bangkok Challenger St. Brieuc Challenger Mestre Challenger Manerbio Challenger Poznan Challenger Caltanissetta Challenger Oeiras 3 Challenger Bangkok Challenger Bastad Challenger Porto Challenger San Benedetto Challenger Marburg Challenger Toulouse Challenger Cordenons Challenger Koblenz Challenger Mestre Challenger Split Challenger Aix En Provence Challenger Shanghai Challenger Ortisei Challenger Traralgon Challenger Meerbusch Challenger Koblenz Challenger Tulln Challenger Cassis Challenger Orleans Challenger Jerusalem Challenger Bratislava 2 Challenger Malaga Challenger Tampere Challenger Sopot Challenger Augsburg Challenger L'Aquila Challenger Ostrava Challenger Phoenix Challenger Biella 7 Challenger Almaty 2 Challenger Bonn Challenger Forli 5 Challenger Prostejov Challenger Nonthaburi 3 Challenger Malaga Challenger Iasi Challenger Szekesfehervar Challenger St. Brieuc Challenger Braga Challenger Girona Challenger Ostrava Challenger Heilbronn Challenger Zug Challenger Itajai Challenger Tiburon Challenger Alicante Challenger Seoul Challenger Kobe Challenger Canberra Challenger Ostrava Challenger Heilbronn Challenger Amersfoort Challenger Porto 2 Challenger Milan Challenger Lille Challenger Orleans Challenger Segovia Challenger Tampere Challenger Maia Challenger Lille Challenger Campinas Challenger Oeiras 1 Challenger Tenerife 1 Challenger Glasgow Challenger Lugano Challenger Braunschweig Challenger Amersfoort Challenger Murcia Challenger Lisbon Challenger Ismaning Challenger Mauthausen Challenger Nonthaburi 1 Challenger Helsinki Challenger Poznan Challenger Chennai Challenger Bergamo Challenger Koblenz Challenger Prague II Challenger Prostejov Challenger Parma Challenger Prostejov Challenger Istanbul Challenger Potchefstroom 2 Challenger Braga Challenger Fairfield Challenger Suzhou Challenger Helsinki Challenger Blois Challenger Braunschweig Challenger Amersfoort Challenger Tampere Challenger Meerbusch Challenger Seville Challenger Braga Challenger Bratislava Challenger Nonthaburi 2 Challenger Bengaluru Challenger Buenos Aires Challenger Mauthausen Challenger Oeiras 4 Challenger Troisdorf Challenger Blois Challenger Portugal Open - Oeiras Estoril Open - Estoril Portugal Open - Oeiras Millennium Estoril Open - Estoril Millennium Estoril Open - Estoril Abierto Mexicano Telcel - Acapulco Millennium Estoril Open - Estoril Grand Prix Hassan II - Marrakech Barcelona Open Banc Sabadell - Barcelona Boss Open - Stuttgart Swiss Indoors Basel - Basel Stockholm Open - Stockholm Qatar ExxonMobil Open - Doha Boss Open - Stuttgart Millennium Estoril Open - Estoril Terra Wortmann Open - Halle European Open - Antwerp Open 13 Provence - Marseille Savannah Challenger Antalya Challenger Madrid Challenger Francavilla Challenger Skopje Challenger Ortisei Challenger Lisbon Challenger Istanbul Challenger Biella 3 Challenger Zagreb Challenger Estoril Open - Estoril Oeiras 3 Challenger Miami Open - Miami Australian Open - Melbourne Wimbledon - London U.S. Open - New York Wimbledon - London Australian Open - Melbourne French Open - Paris Australian Open Qualifying - Doha French Open - Paris Australian Open - Melbourne Wimbledon - London Australian Open - Melbourne French Open - Paris U.S. Open - New York Davis Cup, Group I, 1R, SLO-POR 3-2 Davis Cup, Group I, PO, RUS-POR 4-1 Davis Cup, Group II, 2R, POR-FIN 4-1 Davis Cup, Group II, 1R, POR-MAR 4-1 Davis Cup, Group I, 1R, POR-ISR 5-0 Davis Cup, Group II, 2R, LIB-HKG 3-1 Davis Cup, Group I, 1R, LIB-UZB 2-3 Davis Cup, World Group I, PO, LIB-THA 3-1 Davis Cup, World Group I, PO, LTU-POR 0-4 Davis Cup, Group I, 1R, LIB-BRA 0-4 Davis Cup, Group II, 1R, LIB-MON 3-2 Davis Cup, Group I, PO, SUI-LIB 3-1 Davis Cup, Group I, PO, UKR-LIB 3-1 Davis Cup, Group II, 1R, LIB-JAM 4-0 Davis Cup, Group I, PO, LIB-JPN 1-3 Davis Cup, World Group II, 1R, LIB-RSA 3-1 Davis Cup, Group I, PO, LIB-PER 0-4 Davis Cup, Group II, 1R, LIB-TPE 3-2 Davis Cup, Group II, 3R, THA-LIB 2-3 Braunschweig Challenger All Lower level tournaments Tampere Challenger Troyes Challenger Wimbledon (juniors) U.S. Open (juniors) Australian Open (juniors) U.S. Open (juniors) French Open (juniors) Wimbledon (juniors) French Open (juniors) U.S. Open (juniors) Wimbledon (juniors) Porto Challenger Augsburg Challenger